The present application relates generally to an improved data processing apparatus and method and more specifically to efficient detection and management of dynamic migration of virtual environments.
Logical partitioning (LPAR) is the ability to make a server run as if it were two or more independent servers. When one partitions a server, one divides the resources on the server into subsets called logical partitions. Processors, memory and input/output devices are examples of resources that can be assigned to logical partitions. A logical partition runs as an independent logical server with the processor, memory, and I/O resources allocated to it. Examples of the kinds of software that can be installed and run on logical partitions include the AIX®, i5/OS™, and Linux® operating systems and Virtual I/O Server software. “AIX” and “i5/OS” are trademarks of International Business Machines Corporation in the United States, other countries, or both. “LINUX” is a trademark of Linus Torvalds in the United States, other countries, or both.
Although each logical partition may act as an independent server, the logical partitions on a physical server can share some kinds of resources with each other. The ability to share resources among many logical partitions allows increased resource utilization on the server by shifting the server resources to where they are needed.
A processor is a device that processes programmed instructions. The more processors assigned to a logical partition, the greater the number of concurrent operations the logical partition can run at any given time. Dedicated processors are whole processors that are assigned to a single partition. Shared processors are physical processors whose processing capacity is shared among multiple logical partitions. The shared processor pool includes all processors on the server that are not dedicated to specific logical partitions. Each logical partition that uses the shared processor pool is assigned a specific amount of processor power from the shared processor pool. If the logical partition needs more processor power than its assigned amount, the logical partition is set by default to use the unused processor power in the shared processor pool. The amount of processor power that the logical partition can use is limited only by the virtual processor settings of the logical partition and the amount of unused processor power available in the shared processor pool.
In this case, the server firmware provides virtualization of resources to the operating systems (partitions) running on the server. Virtualization is an abstraction layer that allows multiple virtual environments, possibly with heterogeneous operating systems, to run in isolation, side-by-side on the same physical machine. Virtualization decouples the physical hardware from the operating systems and hides physical information and resources. Each partition or virtual environment runs as if it is executing on its own dedicated machine even though the physical resources are virtualized and may be assigned from a shared pool of resources. For this reason, a partition or virtual environment may also be referred to as a virtual machine (VM). Therefore, the terms “logical partition,” “virtual environment,” and “virtual machine” may be used interchangeably in this disclosure.
In some virtualization technology, resources may be dynamically allocated and de-allocated. Also, some virtualization technology includes dynamic migration, which may dynamically move live, running virtual machines from one host to another while maintaining continuous service availability. Dynamic migration may move a virtual environment from one time slice of a processor to another, from one processor to another, from one blade to another within the same server chassis, or even from one server chassis to another; with virtualization, the idea of what is a “host” depends on how the hardware resources are partitioned.
The abstraction and decoupling, combined with dynamic migration, may introduce new scenarios in customer environments. For example, dynamic migration of virtual environments without suspending or stopping the virtual machine may pose new challenges in current system management processes. In fact, running in a virtual environment, it may be difficult, if not impossible, to detect that a dynamic migration is in progress or has been executed.
Most applications can simply stay unaware of the ongoing migration and, thus, run safely in this scenario. However, some management applications can neither ignore nor easily solve associated problems. For instance, applications that rely on the virtual machine or host capacity are not migration-safe. As an example, for a licensing control application, a hardware scan can provide inconsistent capacity information, if such a scan happens across a dynamic migration. Such a scenario may lead to an incorrect licensing computation.